package studio.xiaoyun.common.tool;

import studio.xiaoyun.common.convert.NumberToChinese;
import studio.xiaoyun.common.convert.NumberToEnglish;

import java.math.BigDecimal;

/**
 * 数字辅助类，提供一些方便操作数字的方法
 * @author 岳正灵
 */
public class NumberTool {

	/**
	 * 保留小数位，会进行四舍五入
	 * @param d 数字
	 * @param scale 需要保留的小数位数
	 * @return 数字
	 */
	public static double round(double d, int scale) {
		BigDecimal b = new BigDecimal(d);
		double d2 = b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
		return d2;
	}

	/**
	 * 判断一个字符串是否是数字，允许有小数
	 * @param s 字符串
	 * @return true 是数字，false 不是数字
	 */
	public static boolean isNumber(String s) {
		if (s != null && s.matches("\\d+([.]\\d+)?")) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 将数字转换为中文大写
	 * @param number 需要转换的数字
	 * @return 中文大写格式
     */
	public static String toChinese(double number){
		return NumberToChinese.numberToChinese(String.valueOf(number),true);
	}

	/**
	 * 将数字转换为英文大写
	 * @param number 需要转换的数字
	 * @return 英文大写格式
     */
	public static String toEnglish(double number){
		return NumberToEnglish.format(number);
	}

}
